g_list_store_append (list, children);
g_list_store_append (list, guides);
g_list_store_append (list, constraints);
- self->model = G_LIST_MODEL (gtk_flatten_list_model_new (G_TYPE_OBJECT, G_LIST_MODEL (list)));
+ self->model = G_LIST_MODEL (gtk_flatten_list_model_new (G_LIST_MODEL (list)));
g_object_unref (children);
g_object_unref (guides);
g_object_unref (constraints);
<TITLE>GtkFilterListModel</TITLE>
GtkFilterListModel
gtk_filter_list_model_new
-gtk_filter_list_model_new_for_type
gtk_filter_list_model_set_model
gtk_filter_list_model_get_model
gtk_filter_list_model_set_filter
<TITLE>GtkSliceListModel</TITLE>
GtkSliceListModel
gtk_slice_list_model_new
-gtk_slice_list_model_new_for_type
gtk_slice_list_model_set_model
gtk_slice_list_model_get_model
gtk_slice_list_model_set_offset
<TITLE>GtkSortListModel</TITLE>
GtkSortListModel
gtk_sort_list_model_new
-gtk_sort_list_model_new_for_type
gtk_sort_list_model_set_sorter
gtk_sort_list_model_get_sorter
gtk_sort_list_model_set_model
g_list_store_append (printer_list_list, printer_list);
g_object_unref (printer_list);
- full_list = G_LIST_MODEL (gtk_flatten_list_model_new (GTK_TYPE_PRINTER, G_LIST_MODEL (printer_list_list)));
+ full_list = G_LIST_MODEL (gtk_flatten_list_model_new (G_LIST_MODEL (printer_list_list)));
g_object_unref (printer_list_list);
filter = gtk_custom_filter_new (match_func, NULL, NULL);
enum {
PROP_0,
PROP_FILTER,
- PROP_ITEM_TYPE,
PROP_MODEL,
NUM_PROPERTIES
};
{
GObject parent_instance;
- GType item_type;
GListModel *model;
GtkFilter *filter;
GtkFilterMatch strictness;
static GType
gtk_filter_list_model_get_item_type (GListModel *list)
{
- GtkFilterListModel *self = GTK_FILTER_LIST_MODEL (list);
-
- return self->item_type;
+ return G_TYPE_OBJECT;
}
static guint
gtk_filter_list_model_set_filter (self, g_value_get_object (value));
break;
- case PROP_ITEM_TYPE:
- self->item_type = g_value_get_gtype (value);
- break;
-
case PROP_MODEL:
gtk_filter_list_model_set_model (self, g_value_get_object (value));
break;
g_value_set_object (value, self->filter);
break;
- case PROP_ITEM_TYPE:
- g_value_set_gtype (value, self->item_type);
- break;
-
case PROP_MODEL:
g_value_set_object (value, self->model);
break;
GTK_TYPE_FILTER,
GTK_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
- /**
- * GtkFilterListModel:item-type:
- *
- * The #GType for elements of this object
- */
- properties[PROP_ITEM_TYPE] =
- g_param_spec_gtype ("item-type",
- P_("Item type"),
- P_("The type of elements of this object"),
- G_TYPE_OBJECT,
- GTK_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_EXPLICIT_NOTIFY);
-
/**
* GtkFilterListModel:model:
*
/**
* gtk_filter_list_model_new:
- * @model: the model to sort
+ * @model: (allow-none): the model to sort
* @filter: (allow-none): filter or %NULL to not filter items
*
* Creates a new #GtkFilterListModel that will filter @model using the given
{
GtkFilterListModel *result;
- g_return_val_if_fail (G_IS_LIST_MODEL (model), NULL);
+ g_return_val_if_fail (model == NULL || G_IS_LIST_MODEL (model), NULL);
+ g_return_val_if_fail (filter == NULL || GTK_IS_FILTER (filter), NULL);
result = g_object_new (GTK_TYPE_FILTER_LIST_MODEL,
- "item-type", g_list_model_get_item_type (model),
"model", model,
"filter", filter,
NULL);
return result;
}
-/**
- * gtk_filter_list_model_new_for_type:
- * @item_type: the type of the items that will be returned
- *
- * Creates a new empty filter list model set up to return items of type @item_type.
- * It is up to the application to set a proper filter and model to ensure
- * the item type is matched.
- *
- * Returns: a new #GtkFilterListModel
- **/
-GtkFilterListModel *
-gtk_filter_list_model_new_for_type (GType item_type)
-{
- g_return_val_if_fail (g_type_is_a (item_type, G_TYPE_OBJECT), NULL);
-
- return g_object_new (GTK_TYPE_FILTER_LIST_MODEL,
- "item-type", item_type,
- NULL);
-}
-
/**
* gtk_filter_list_model_set_filter:
* @self: a #GtkFilterListModel
GDK_AVAILABLE_IN_ALL
GtkFilterListModel * gtk_filter_list_model_new (GListModel *model,
GtkFilter *filter);
-GDK_AVAILABLE_IN_ALL
-GtkFilterListModel * gtk_filter_list_model_new_for_type (GType item_type);
GDK_AVAILABLE_IN_ALL
void gtk_filter_list_model_set_filter (GtkFilterListModel *self,
enum {
PROP_0,
- PROP_ITEM_TYPE,
PROP_MODEL,
NUM_PROPERTIES
};
{
GObject parent_instance;
- GType item_type;
GListModel *model;
GtkRbTree *items; /* NULL if model == NULL */
};
static GType
gtk_flatten_list_model_get_item_type (GListModel *list)
{
- GtkFlattenListModel *self = GTK_FLATTEN_LIST_MODEL (list);
-
- return self->item_type;
+ return G_TYPE_OBJECT;
}
static guint
{
node = gtk_rb_tree_insert_before (self->items, after);
node->model = g_list_model_get_item (self->model, position + i);
- g_warn_if_fail (g_type_is_a (g_list_model_get_item_type (node->model), self->item_type));
g_signal_connect (node->model,
"items-changed",
G_CALLBACK (gtk_flatten_list_model_items_changed_cb),
switch (prop_id)
{
- case PROP_ITEM_TYPE:
- self->item_type = g_value_get_gtype (value);
- break;
-
case PROP_MODEL:
gtk_flatten_list_model_set_model (self, g_value_get_object (value));
break;
switch (prop_id)
{
- case PROP_ITEM_TYPE:
- g_value_set_gtype (value, self->item_type);
- break;
-
case PROP_MODEL:
g_value_set_object (value, self->model);
break;
gobject_class->get_property = gtk_flatten_list_model_get_property;
gobject_class->dispose = gtk_flatten_list_model_dispose;
- /**
- * GtkFlattenListModel:item-type:
- *
- * The #GType for elements of this object
- */
- properties[PROP_ITEM_TYPE] =
- g_param_spec_gtype ("item-type",
- P_("Item type"),
- P_("The type of elements of this object"),
- G_TYPE_OBJECT,
- GTK_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_EXPLICIT_NOTIFY);
-
/**
* GtkFlattenListModel:model:
*
/**
* gtk_flatten_list_model_new:
- * @item_type: The type of items in the to-be-flattened models
- * @model: (nullable) (transfer none): the item to be flattened
+ * @model: (nullable) (transfer none): the model to be flattened
*
- * Creates a new #GtkFlattenListModel that flattens @list. The
- * models returned by @model must conform to the given @item_type,
- * either by having an identical type or a subtype.
+ * Creates a new #GtkFlattenListModel that flattens @list.
*
* Returns: a new #GtkFlattenListModel
**/
GtkFlattenListModel *
-gtk_flatten_list_model_new (GType item_type,
- GListModel *model)
+gtk_flatten_list_model_new (GListModel *model)
{
GtkFlattenListModel *result;
- g_return_val_if_fail (g_type_is_a (item_type, G_TYPE_OBJECT), NULL);
g_return_val_if_fail (model == NULL || G_IS_LIST_MODEL (model), NULL);
result = g_object_new (GTK_TYPE_FLATTEN_LIST_MODEL,
- "item-type", item_type,
"model", model,
NULL);
* @self: a #GtkFlattenListModel
* @model: (nullable) (transfer none): the new model or %NULL
*
- * Sets a new model to be flattened. The model must contain items of
- * #GListModel that conform to the item type of @self.
+ * Sets a new model to be flattened.
**/
void
gtk_flatten_list_model_set_model (GtkFlattenListModel *self,
g_return_if_fail (GTK_IS_FLATTEN_LIST_MODEL (self));
g_return_if_fail (model == NULL || G_IS_LIST_MODEL (model));
- if (model)
- {
- g_return_if_fail (g_type_is_a (g_list_model_get_item_type (model), G_TYPE_LIST_MODEL));
- }
if (self->model == model)
return;
G_DECLARE_FINAL_TYPE (GtkFlattenListModel, gtk_flatten_list_model, GTK, FLATTEN_LIST_MODEL, GObject)
GDK_AVAILABLE_IN_ALL
-GtkFlattenListModel * gtk_flatten_list_model_new (GType item_type,
- GListModel *model);
+GtkFlattenListModel * gtk_flatten_list_model_new (GListModel *model);
GDK_AVAILABLE_IN_ALL
void gtk_flatten_list_model_set_model (GtkFlattenListModel *self,
if ((self->level & GTK_FONT_CHOOSER_LEVEL_STYLE) == 0)
model = g_object_ref (G_LIST_MODEL (fontmap));
else
- model = G_LIST_MODEL (gtk_flatten_list_model_new (PANGO_TYPE_FONT_FACE, G_LIST_MODEL (fontmap)));
+ model = G_LIST_MODEL (gtk_flatten_list_model_new (G_LIST_MODEL (fontmap)));
gtk_filter_list_model_set_model (self->filter_model, model);
g_object_unref (model);
}
enum {
PROP_0,
PROP_HAS_MAP,
- PROP_ITEM_TYPE,
PROP_MODEL,
NUM_PROPERTIES
};
{
GObject parent_instance;
- GType item_type;
GListModel *model;
GtkMapListModelMapFunc map_func;
gpointer user_data;
static GType
gtk_map_list_model_get_item_type (GListModel *list)
{
- GtkMapListModel *self = GTK_MAP_LIST_MODEL (list);
-
- return self->item_type;
+ return G_TYPE_OBJECT;
}
static guint
}
node->item = self->map_func (g_list_model_get_item (self->model, position), self->user_data);
- if (!G_TYPE_CHECK_INSTANCE_TYPE (node->item, self->item_type))
- {
- g_critical ("Map function returned a %s, but it is not a subtype of the model's type %s",
- G_OBJECT_TYPE_NAME (node->item), g_type_name (self->item_type));
- }
g_object_add_weak_pointer (node->item, &node->item);
return node->item;
switch (prop_id)
{
- case PROP_ITEM_TYPE:
- self->item_type = g_value_get_gtype (value);
- break;
-
case PROP_MODEL:
gtk_map_list_model_set_model (self, g_value_get_object (value));
break;
g_value_set_boolean (value, self->items != NULL);
break;
- case PROP_ITEM_TYPE:
- g_value_set_gtype (value, self->item_type);
- break;
-
case PROP_MODEL:
g_value_set_object (value, self->model);
break;
FALSE,
GTK_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY);
- /**
- * GtkMapListModel:item-type:
- *
- * The #GType for elements of this object
- */
- properties[PROP_ITEM_TYPE] =
- g_param_spec_gtype ("item-type",
- P_("Item type"),
- P_("The type of elements of this object"),
- G_TYPE_OBJECT,
- GTK_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_EXPLICIT_NOTIFY);
-
/**
* GtkMapListModel:model:
*
/**
* gtk_map_list_model_new:
- * @item_type: the #GType to use as the model's item type
* @model: (allow-none): The model to map or %NULL for none
* @map_func: (allow-none): map function or %NULL to not map items
* @user_data: (closure): user data passed to @map_func
* Returns: a new #GtkMapListModel
**/
GtkMapListModel *
-gtk_map_list_model_new (GType item_type,
- GListModel *model,
+gtk_map_list_model_new (GListModel *model,
GtkMapListModelMapFunc map_func,
gpointer user_data,
GDestroyNotify user_destroy)
{
GtkMapListModel *result;
- g_return_val_if_fail (g_type_is_a (item_type, G_TYPE_OBJECT), NULL);
g_return_val_if_fail (model == NULL || G_IS_LIST_MODEL (model), NULL);
result = g_object_new (GTK_TYPE_MAP_LIST_MODEL,
- "item-type", item_type,
"model", model,
NULL);
typedef gpointer (* GtkMapListModelMapFunc) (gpointer item, gpointer user_data);
GDK_AVAILABLE_IN_ALL
-GtkMapListModel * gtk_map_list_model_new (GType item_type,
- GListModel *model,
+GtkMapListModel * gtk_map_list_model_new (GListModel *model,
GtkMapListModelMapFunc map_func,
gpointer user_data,
GDestroyNotify user_destroy);
static GType
gtk_multi_selection_get_item_type (GListModel *list)
{
- GtkMultiSelection *self = GTK_MULTI_SELECTION (list);
-
- return g_list_model_get_item_type (self->model);
+ return G_TYPE_OBJECT;
}
static guint
static GType
gtk_no_selection_get_item_type (GListModel *list)
{
- GtkNoSelection *self = GTK_NO_SELECTION (list);
-
- return g_list_model_get_item_type (self->model);
+ return G_TYPE_OBJECT;
}
static guint
g_list_store_append (store, dialog->page_setup_list);
g_list_store_append (store, dialog->custom_paper_list);
g_list_store_append (store, dialog->manage_papers_list);
- paper_size_list = G_LIST_MODEL (gtk_flatten_list_model_new (GTK_TYPE_PAGE_SETUP, G_LIST_MODEL (store)));
+ paper_size_list = G_LIST_MODEL (gtk_flatten_list_model_new (G_LIST_MODEL (store)));
gtk_drop_down_set_model (GTK_DROP_DOWN (dialog->paper_size_combo), paper_size_list);
g_object_unref (store);
g_object_unref (paper_size_list);
g_list_store_append (printer_list_list, printer_list);
g_object_unref (printer_list);
- full_list = G_LIST_MODEL (gtk_flatten_list_model_new (GTK_TYPE_PRINTER, G_LIST_MODEL (printer_list_list)));
+ full_list = G_LIST_MODEL (gtk_flatten_list_model_new (G_LIST_MODEL (printer_list_list)));
filter = gtk_custom_filter_new (match_func, NULL, NULL);
dialog->printer_list = G_LIST_MODEL (gtk_filter_list_model_new (full_list, filter));
g_list_store_append (store, dialog->page_setup_list);
g_list_store_append (store, dialog->custom_paper_list);
g_list_store_append (store, dialog->manage_papers_list);
- paper_size_list = G_LIST_MODEL (gtk_flatten_list_model_new (GTK_TYPE_PAGE_SETUP, G_LIST_MODEL (store)));
+ paper_size_list = G_LIST_MODEL (gtk_flatten_list_model_new (G_LIST_MODEL (store)));
gtk_drop_down_set_model (GTK_DROP_DOWN (dialog->paper_size_combo), paper_size_list);
g_object_unref (store);
g_object_unref (paper_size_list);
g_list_store_append (lists, gtk_print_backend_get_printers (backend));
}
- model = G_LIST_MODEL (gtk_flatten_list_model_new (GTK_TYPE_PRINTER, G_LIST_MODEL (lists)));
+ model = G_LIST_MODEL (gtk_flatten_list_model_new (G_LIST_MODEL (lists)));
g_object_unref (lists);
static GType
gtk_shortcut_controller_list_model_get_item_type (GListModel *list)
{
- return GTK_TYPE_SHORTCUT;
+ return G_TYPE_OBJECT;
}
static guint
case PROP_MODEL:
{
GListModel *model = g_value_get_object (value);
- if (model && g_list_model_get_item_type (model) != GTK_TYPE_SHORTCUT)
- {
- g_warning ("Setting a model with type '%s' on a shortcut controller that requires 'GtkShortcut'",
- g_type_name (g_list_model_get_item_type (model)));
- model = NULL;
- }
if (model == NULL)
{
self->shortcuts = G_LIST_MODEL (g_list_store_new (GTK_TYPE_SHORTCUT));
index = (self->last_activated + 1 + i) % g_list_model_get_n_items (self->shortcuts);
shortcut = g_list_model_get_item (self->shortcuts, index);
+ if (!GTK_IS_SHORTCUT (shortcut))
+ {
+ g_object_unref (shortcut);
+ continue;
+ }
switch (gtk_shortcut_trigger_trigger (gtk_shortcut_get_trigger (shortcut), event, enable_mnemonics))
{
for (i = 0, p = g_list_model_get_n_items (G_LIST_MODEL (controller)); i < p; i++)
{
GtkShortcut *shortcut = g_list_model_get_item (G_LIST_MODEL (controller), i);
- update_accel (shortcut, widget, TRUE);
+ if (GTK_IS_SHORTCUT (shortcut))
+ update_accel (shortcut, widget, TRUE);
g_object_unref (shortcut);
}
for (i = 0; i < g_list_model_get_n_items (G_LIST_MODEL (controller)); i++)
{
GtkShortcut *shortcut = g_list_model_get_item (G_LIST_MODEL (controller), i);
- update_accel (shortcut, widget, FALSE);
+ if (GTK_IS_SHORTCUT (shortcut))
+ update_accel (shortcut, widget, FALSE);
g_object_unref (shortcut);
}
#endif
gtk_shortcut_controller_new_for_model (GListModel *model)
{
g_return_val_if_fail (G_IS_LIST_MODEL (model), NULL);
- g_return_val_if_fail (g_list_model_get_item_type (model) == GTK_TYPE_SHORTCUT, NULL);
return g_object_new (GTK_TYPE_SHORTCUT_CONTROLLER,
"model", model,
GtkEventController *controller;
store = g_list_store_new (GTK_TYPE_SHORTCUT_CONTROLLER);
- model = gtk_flatten_list_model_new (GTK_TYPE_SHORTCUT, G_LIST_MODEL (store));
+ model = gtk_flatten_list_model_new (G_LIST_MODEL (store));
g_object_unref (store);
g_object_set_data_full (G_OBJECT (widget), "gtk-shortcut-manager-bubble", model, g_object_unref);
controller = gtk_shortcut_controller_new_for_model (G_LIST_MODEL (model));
gtk_widget_add_controller (widget, controller);
store = g_list_store_new (GTK_TYPE_SHORTCUT_CONTROLLER);
- model = gtk_flatten_list_model_new (GTK_TYPE_SHORTCUT, G_LIST_MODEL (store));
+ model = gtk_flatten_list_model_new (G_LIST_MODEL (store));
g_object_unref (store);
g_object_set_data_full (G_OBJECT (widget), "gtk-shortcut-manager-capture", model, g_object_unref);
controller = gtk_shortcut_controller_new_for_model (G_LIST_MODEL (model));
static GType
gtk_single_selection_get_item_type (GListModel *list)
{
- GtkSingleSelection *self = GTK_SINGLE_SELECTION (list);
-
- return g_list_model_get_item_type (self->model);
+ return G_TYPE_OBJECT;
}
static guint
enum {
PROP_0,
- PROP_ITEM_TYPE,
PROP_MODEL,
PROP_OFFSET,
PROP_SIZE,
{
GObject parent_instance;
- GType item_type;
GListModel *model;
guint offset;
guint size;
static GType
gtk_slice_list_model_get_item_type (GListModel *list)
{
- GtkSliceListModel *self = GTK_SLICE_LIST_MODEL (list);
-
- return self->item_type;
+ return G_TYPE_OBJECT;
}
static guint
switch (prop_id)
{
- case PROP_ITEM_TYPE:
- self->item_type = g_value_get_gtype (value);
- break;
-
case PROP_MODEL:
gtk_slice_list_model_set_model (self, g_value_get_object (value));
break;
switch (prop_id)
{
- case PROP_ITEM_TYPE:
- g_value_set_gtype (value, self->item_type);
- break;
-
case PROP_MODEL:
g_value_set_object (value, self->model);
break;
gobject_class->get_property = gtk_slice_list_model_get_property;
gobject_class->dispose = gtk_slice_list_model_dispose;
- /**
- * GtkSliceListModel:item-type:
- *
- * The #GType for elements of this object
- */
- properties[PROP_ITEM_TYPE] =
- g_param_spec_gtype ("item-type",
- P_("Item type"),
- P_("The type of elements of this object"),
- G_TYPE_OBJECT,
- GTK_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_EXPLICIT_NOTIFY);
-
/**
* GtkSliceListModel:model:
*
/**
* gtk_slice_list_model_new:
- * @model: (transfer none): The model to use
+ * @model: (transfer none) (allow-none): The model to use
* @offset: the offset of the slice
* @size: maximum size of the slice
*
guint offset,
guint size)
{
- g_return_val_if_fail (G_IS_LIST_MODEL (model), NULL);
+ g_return_val_if_fail (model == NULL || G_IS_LIST_MODEL (model), NULL);
return g_object_new (GTK_TYPE_SLICE_LIST_MODEL,
- "item-type", g_list_model_get_item_type (model),
"model", model,
"offset", offset,
"size", size,
NULL);
}
-/**
- * gtk_slice_list_model_new_for_type:
- * @item_type: the type of items
- *
- * Creates a new empty #GtkSliceListModel for the given @item_type that
- * can be set up later.
- *
- * Returns: a new empty #GtkSliceListModel
- **/
-GtkSliceListModel *
-gtk_slice_list_model_new_for_type (GType item_type)
-{
- g_return_val_if_fail (g_type_is_a (item_type, G_TYPE_OBJECT), NULL);
-
- return g_object_new (GTK_TYPE_SLICE_LIST_MODEL,
- "item-type", item_type,
- NULL);
-}
-
/**
* gtk_slice_list_model_set_model:
* @self: a #GtkSliceListModel
GtkSliceListModel * gtk_slice_list_model_new (GListModel *model,
guint offset,
guint size);
-GDK_AVAILABLE_IN_ALL
-GtkSliceListModel * gtk_slice_list_model_new_for_type (GType item_type);
GDK_AVAILABLE_IN_ALL
void gtk_slice_list_model_set_model (GtkSliceListModel *self,
enum {
PROP_0,
- PROP_ITEM_TYPE,
PROP_MODEL,
PROP_SORTER,
NUM_PROPERTIES
{
GObject parent_instance;
- GType item_type;
GListModel *model;
GtkSorter *sorter;
static GType
gtk_sort_list_model_get_item_type (GListModel *list)
{
- GtkSortListModel *self = GTK_SORT_LIST_MODEL (list);
-
- return self->item_type;
+ return G_TYPE_OBJECT;
}
static guint
switch (prop_id)
{
- case PROP_ITEM_TYPE:
- self->item_type = g_value_get_gtype (value);
- break;
-
case PROP_MODEL:
gtk_sort_list_model_set_model (self, g_value_get_object (value));
break;
switch (prop_id)
{
- case PROP_ITEM_TYPE:
- g_value_set_gtype (value, self->item_type);
- break;
-
case PROP_MODEL:
g_value_set_object (value, self->model);
break;
GTK_TYPE_SORTER,
GTK_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
- /**
- * GtkSortListModel:item-type:
- *
- * The #GType for items of this model
- */
- properties[PROP_ITEM_TYPE] =
- g_param_spec_gtype ("item-type",
- P_("Item type"),
- P_("The type of items of this list"),
- G_TYPE_OBJECT,
- GTK_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_EXPLICIT_NOTIFY);
-
/**
* GtkSortListModel:model:
*
/**
* gtk_sort_list_model_new:
- * @model: the model to sort
+ * @model: (allow-none): the model to sort
* @sorter: (allow-none): the #GtkSorter to sort @model with
*
* Creates a new sort list model that uses the @sorter to sort @model.
{
GtkSortListModel *result;
- g_return_val_if_fail (G_IS_LIST_MODEL (model), NULL);
+ g_return_val_if_fail (model == NULL || G_IS_LIST_MODEL (model), NULL);
g_return_val_if_fail (sorter == NULL || GTK_IS_SORTER (sorter), NULL);
result = g_object_new (GTK_TYPE_SORT_LIST_MODEL,
- "item-type", g_list_model_get_item_type (model),
"model", model,
"sorter", sorter,
NULL);
return result;
}
-/**
- * gtk_sort_list_model_new_for_type:
- * @item_type: the type of the items that will be returned
- *
- * Creates a new empty sort list model set up to return items of type @item_type.
- * It is up to the application to set a proper sort function and model to ensure
- * the item type is matched.
- *
- * Returns: a new #GtkSortListModel
- **/
-GtkSortListModel *
-gtk_sort_list_model_new_for_type (GType item_type)
-{
- g_return_val_if_fail (g_type_is_a (item_type, G_TYPE_OBJECT), NULL);
-
- return g_object_new (GTK_TYPE_SORT_LIST_MODEL,
- "item-type", item_type,
- NULL);
-}
-
/**
* gtk_sort_list_model_set_model:
* @self: a #GtkSortListModel
g_return_if_fail (GTK_IS_SORT_LIST_MODEL (self));
g_return_if_fail (model == NULL || G_IS_LIST_MODEL (model));
- if (model)
- {
- g_return_if_fail (g_type_is_a (g_list_model_get_item_type (model), self->item_type));
- }
if (self->model == model)
return;
GDK_AVAILABLE_IN_ALL
GtkSortListModel * gtk_sort_list_model_new (GListModel *model,
GtkSorter *sorter);
-GDK_AVAILABLE_IN_ALL
-GtkSortListModel * gtk_sort_list_model_new_for_type (GType item_type);
-
GDK_AVAILABLE_IN_ALL
void gtk_sort_list_model_set_sorter (GtkSortListModel *self,
GtkSorter *sorter);
if (model == NULL)
return 0;
- if (!g_type_is_a (g_list_model_get_item_type (model), g_list_model_get_item_type (self->root_node.model)))
- {
- g_critical ("The GtkTreeListModelCreateModelFunc for %p returned a model with item type \"%s\" "
- "but \"%s\" is required.",
- self,
- g_type_name (g_list_model_get_item_type (model)),
- g_type_name (g_list_model_get_item_type (self->root_node.model)));
- return 0;
- }
-
gtk_tree_list_model_init_node (self, node, model);
tree_node_mark_dirty (node);
GtkTreeListModel *self = GTK_TREE_LIST_MODEL (list);
if (self->passthrough)
- return g_list_model_get_item_type (self->root_node.model);
+ return G_TYPE_OBJECT;
else
return GTK_TYPE_TREE_LIST_ROW;
}
self->model = gtk_property_lookup_list_model_new (GTK_TYPE_WIDGET, "parent");
gtk_property_lookup_list_model_set_object (self->model, object);
- map_model = gtk_map_list_model_new (G_TYPE_LIST_MODEL, G_LIST_MODEL (self->model), map_to_controllers, NULL, NULL);
+ map_model = gtk_map_list_model_new (G_LIST_MODEL (self->model), map_to_controllers, NULL, NULL);
g_object_unref (self->model);
- flatten_model = gtk_flatten_list_model_new (GTK_TYPE_EVENT_CONTROLLER, G_LIST_MODEL (map_model));
+ flatten_model = gtk_flatten_list_model_new (G_LIST_MODEL (map_model));
sorter = gtk_custom_sorter_new (compare_controllers, NULL, NULL);
sort_model = gtk_sort_list_model_new (G_LIST_MODEL (flatten_model), sorter);
g_list_store_append (list, sublist);
g_object_unref (sublist);
- flatten = gtk_flatten_list_model_new (G_TYPE_OBJECT, G_LIST_MODEL (list));
+ flatten = gtk_flatten_list_model_new (G_LIST_MODEL (list));
g_object_unref (list);
return G_LIST_MODEL (flatten);
g_object_unref (tmp);
}
- result = G_LIST_MODEL (gtk_flatten_list_model_new (G_TYPE_OBJECT, G_LIST_MODEL (concat)));
+ result = G_LIST_MODEL (gtk_flatten_list_model_new (G_LIST_MODEL (concat)));
g_object_unref (concat);
return result;
}
g_object_unref (selection);
g_list_store_append (result_list, columns);
g_object_unref (columns);
- result = gtk_flatten_list_model_new (G_TYPE_OBJECT, G_LIST_MODEL (result_list));
+ result = gtk_flatten_list_model_new (G_LIST_MODEL (result_list));
g_object_unref (result_list);
return G_LIST_MODEL (result);
g_list_store_append (result_list, sublist);
g_object_unref (sublist);
- result = gtk_flatten_list_model_new (G_TYPE_OBJECT, G_LIST_MODEL (result_list));
+ result = gtk_flatten_list_model_new (G_LIST_MODEL (result_list));
g_object_unref (result_list);
return G_LIST_MODEL (result);
if (result_list)
{
- result = G_LIST_MODEL (gtk_flatten_list_model_new (G_TYPE_OBJECT, G_LIST_MODEL (result_list)));
+ result = G_LIST_MODEL (gtk_flatten_list_model_new (G_LIST_MODEL (result_list)));
g_object_unref (result_list);
}
g_list_store_append (list, special);
g_object_unref (special);
- filter = gtk_filter_list_model_new_for_type (G_TYPE_OBJECT);
+ filter = gtk_filter_list_model_new (NULL, NULL);
custom_filter = gtk_custom_filter_new (toplevel_filter_func,
display, NULL);
gtk_filter_list_model_set_filter (filter, custom_filter);
g_list_store_append (list, filter);
g_object_unref (filter);
- flatten = gtk_flatten_list_model_new (G_TYPE_OBJECT, G_LIST_MODEL (list));
+ flatten = gtk_flatten_list_model_new (G_LIST_MODEL (list));
g_object_unref (list);
return G_LIST_MODEL (flatten);
}
"filter");
filter = gtk_string_filter_new ();
- child = gtk_filter_list_model_new_for_type (G_TYPE_OBJECT);
+ child = gtk_filter_list_model_new (NULL, NULL);
gtk_filter_list_model_set_filter (child, filter);
target = gtk_filter_list_model_new (G_LIST_MODEL (child), NULL);
g_object_unref (child);
GtkFlattenListModel *result;
GString *changes;
- result = gtk_flatten_list_model_new (G_TYPE_OBJECT, G_LIST_MODEL (store));
+ result = gtk_flatten_list_model_new (G_LIST_MODEL (store));
changes = g_string_new ("");
g_object_set_qdata_full (G_OBJECT(result), changes_quark, changes, free_changes);
g_signal_connect (result, "items-changed", G_CALLBACK (items_changed), changes);
GtkMapListModel *result;
GString *changes;
- result = gtk_map_list_model_new (G_TYPE_OBJECT, G_LIST_MODEL (store), map_multiply, GUINT_TO_POINTER (2), NULL);
+ result = gtk_map_list_model_new (G_LIST_MODEL (store), map_multiply, GUINT_TO_POINTER (2), NULL);
changes = g_string_new ("");
g_object_set_qdata_full (G_OBJECT(result), changes_quark, changes, free_changes);
g_signal_connect (result, "items-changed", G_CALLBACK (items_changed), changes);
GtkSliceListModel *result;
GString *changes;
- result = gtk_slice_list_model_new_for_type (G_TYPE_OBJECT);
- if (store)
- gtk_slice_list_model_set_model (result, G_LIST_MODEL (store));
- gtk_slice_list_model_set_offset (result, offset);
- gtk_slice_list_model_set_size (result, size);
+ result = gtk_slice_list_model_new (G_LIST_MODEL (store), offset, size);
changes = g_string_new ("");
g_object_set_qdata_full (G_OBJECT(result), changes_quark, changes, free_changes);
g_object_unref (sorter);
}
else
- result = gtk_sort_list_model_new_for_type (G_TYPE_OBJECT);
+ result = gtk_sort_list_model_new (NULL, NULL);
changes = g_string_new ("");
g_object_set_qdata_full (G_OBJECT(result), changes_quark, changes, free_changes);